//package cn.explink.dop.tools;
//
//import java.awt.Image;
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.util.UUID;
//
//import javax.imageio.ImageIO;
//import javax.servlet.http.HttpServletRequest;
//
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGEncodeParam;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
//
///**
// *
// * @ClassName: ImageCompressUtil
// * @Description: 图片上传工具类
// * @author 孟凡岭
// * @date 2015年4月8日 下午1:46:11
// * @since AR1.0
// */
//@SuppressWarnings("restriction")
//public class ImageCompressUtil {
//	/**
//	 *
//	 *
//	 * @Title: zipImageFile
//	 * @Description: 压缩文件上传，返回文件路径
//	 * @author 孟凡岭
//	 * @param @param oldFile 源文件输入流
//	 * @param @param fileName 文件名
//	 * @param @param path 图片要存储的目录，如upload/image
//	 * @param @param width 压缩后图片宽度
//	 * @param @param height 压缩后图片高度
//	 * @param @param quality 压缩质量
//	 * @param @param request 用于获取绝对路径
//	 * @param @return
//	 * @return String 返回类型
//	 * @throws
//	 */
//	@SuppressWarnings("restriction")
//	public static String zipImageFile(InputStream oldFile, String fileName, String path, int width, int height, float quality, HttpServletRequest request) {
//		String newpath = request.getSession().getServletContext().getRealPath("/") + "\\" + path;
//		ImageCompressUtil.createDir(newpath);
//		if (oldFile == null) {
//			return null;
//		}
//		String newImage = null;
//		try {
//			/** 对服务器上的临时文件进行处理 */
//			Image srcFile = ImageIO.read(oldFile);
//			/** 宽,高设定 */
//			BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//			tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);
//			/**
//			 * 获取扩展名
//			 */
//			String extendName = fileName.substring(fileName.lastIndexOf("."));
//			/** 压缩后的文件名 */
//			newImage = UUID.randomUUID().toString() + extendName;
//			newpath = newpath + "\\" + newImage;
//			/** 压缩之后临时存放位置 */
//			FileOutputStream out = new FileOutputStream(newpath);
//			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//			JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
//			/** 压缩质量 */
//			jep.setQuality(quality, true);
//			encoder.encode(tag, jep);
//			out.close();
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return "\\" + path + "\\" + newImage;
//	}
//
//	/**
//	 *
//	 * @Title: saveMinPhoto
//	 * @Description: 图片压缩，生产一张图片效果最接近原图的缩略图，返回图片路径
//	 * @author 孟凡岭
//	 * @param @param source 源文件输入流
//	 * @param @param path 图片要存储的目录，如upload/image
//	 * @param @param fileName 文件名
//	 * @param @param comBase 压缩基数
//	 * @param @param scale压缩限制(宽/高)比例
//	 *        一般用1：当scale>=1,缩略图height=comBase,width按原图宽高比例
//	 *        ;若scale<1,缩略图width=comBase,height按原图宽高比例
//	 * @param @param request 用于获取绝对路径
//	 * @param @return
//	 * @param @throws Exception
//	 * @return String 返回类型
//	 * @throws
//	 */
//	@SuppressWarnings("restriction")
//	public static String saveMinPhoto(InputStream source, String path, String fileName, double comBase, double scale, HttpServletRequest request) throws Exception {
//		String newpath = (request.getSession().getServletContext().getRealPath("/") + "/" + path).replace("\\", "/");
//		ImageCompressUtil.createDir(newpath);
//		Image src = ImageIO.read(source);
//		int srcHeight = src.getHeight(null);
//		int srcWidth = src.getWidth(null);
//		int deskHeight = 0;// 缩略图高
//		int deskWidth = 0;// 缩略图宽
//		double srcScale = (double) srcHeight / srcWidth;
//		/** 缩略图宽高算法 */
//		if ((srcHeight > comBase) || (srcWidth > comBase)) {
//			if ((srcScale >= scale) || ((1 / srcScale) > scale)) {
//				if (srcScale >= scale) {
//					deskHeight = (int) comBase;
//					deskWidth = (srcWidth * deskHeight) / srcHeight;
//				} else {
//					deskWidth = (int) comBase;
//					deskHeight = (srcHeight * deskWidth) / srcWidth;
//				}
//			} else {
//				if (srcHeight > comBase) {
//					deskHeight = (int) comBase;
//					deskWidth = (srcWidth * deskHeight) / srcHeight;
//				} else {
//					deskWidth = (int) comBase;
//					deskHeight = (srcHeight * deskWidth) / srcWidth;
//				}
//			}
//		} else {
//			deskHeight = srcHeight;
//			deskWidth = srcWidth;
//		}
//		/**
//		 * 获取扩展名
//		 */
//		String extendName = fileName.substring(fileName.lastIndexOf("."));
//		/** 压缩后的文件名 */
//		String newImage = UUID.randomUUID().toString() + extendName;
//		BufferedImage tag = new BufferedImage(deskWidth, deskHeight, BufferedImage.TYPE_3BYTE_BGR);
//		tag.getGraphics().drawImage(src, 0, 0, deskWidth, deskHeight, null); // 绘制缩小后的图
//		newpath = newpath + "/" + newImage;
//		FileOutputStream deskImage = new FileOutputStream(newpath); // 输出到文件流
//		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(deskImage);
//		encoder.encode(tag); // 近JPEG编码
//		deskImage.close();
//		return "/" + path + "/" + newImage;
//	}
//
//	/**
//	 *
//	 * @Title: createDir
//	 * @Description: 判断目录是否存在，如果不存在则创建目录
//	 * @author 孟凡岭
//	 * @param @param dirPath
//	 * @return void 返回类型
//	 * @throws
//	 */
//	public static void createDir(String dirPath) {
//		File dir = new File(dirPath);
//		if (!dir.exists()) {
//			dir.mkdirs();
//		}
//	}
//
//}
